We start by loading some useful packages. Using the
library function, we can load these packages if they have
previously been installed in your R. If they have not been
previously installed, replace the library function with
install.packages function and place the package name in
quotation marks. That will install the package. Next, run the
library function again and it will load the package. You
only need to install a package once.
library(Rmisc) # Necessary for `summarySE` function.
library(ggplot2) # Necessary for `ggplot` function.
library(kableExtra) # Necessary for `kbl` function.
library(dplyr) # Necessary for `mutate` function.
library(conover.test) # Necessary for 'conover.test' function.
library(report) # Necessary for 'report' function
library(reshape2) # Necessary for melt.
library(png) # Necessary for png function.
We will set the working directory using the setwd
function. If you are looking to run this code in your computer, be sure
to change the path to your data! Normally we can load dataframes using
the read.csv function. The BeeHotel dataframe
holds your data. Please take note that I have reorganized the data for
easy input into R.
setwd("~/Desktop/R") # Set the working directory
Crops <- read.csv("Data/CropHarvest.csv")
Let’s check out the structure using the str
function.
str(Crops)
## 'data.frame': 125 obs. of 20 variables:
## $ Crop : chr "Bean" "Bean" "Bean" "Bean" ...
## $ ID : int 1 2 3 4 5 6 7 8 9 10 ...
## $ Unique_ID : chr "Bean 1" "Bean 2" "Bean 3" "Bean 4" ...
## $ State : chr "Dead" "Harvested" "Dead" "Harvested" ...
## $ Treatment : chr "Triple15" "Triple15" "-" "Triple15" ...
## $ Stem_Length_cm : num NA 9.3 NA 7.5 8.9 14.7 5.9 12.7 NA 16.4 ...
## $ Leaf_Vein_mm : num NA 46 NA 56 54 62 57 70.5 NA 65.5 ...
## $ Leaf_Count : int NA 4 NA 23 21 35 27 30 NA 20 ...
## $ Leaf_Width_mm : num NA 22.5 NA 30.5 33.5 32.5 29.5 30.5 NA 36.5 ...
## $ Root_Length_mm : num NA 107 NA 131 142 104 149 124 NA 120 ...
## $ Node_Count : int NA 2 NA 7 8 9 10 8 NA 5 ...
## $ Fresh_Mass_g : num NA 6.3 NA 10.1 11.1 12.6 9.9 15.3 NA 11 ...
## $ Fruited : chr NA "Yes" NA "No" ...
## $ Flowered : chr NA "Yes" NA "No" ...
## $ Root.Nodules.Present: chr NA "Yes" NA "Yes" ...
## $ Stem_Diameter_mm : num NA NA NA NA NA NA NA NA NA NA ...
## $ Root_count : int NA NA NA NA NA NA NA NA NA NA ...
## $ Dry_Mass_g : num NA NA NA NA NA NA NA NA NA NA ...
## $ Dry_Root_Mass_g : num NA NA NA NA NA NA NA NA NA NA ...
## $ Notes : chr "" "" "" "" ...
We have some factor variables that are currently coded as characters (chr), so we’ll need to change the class of those. We also have some numerical and count data, with plenty NA values, because not every crop has all these measurements. We’ll subset by crop most likely.
We can convert the character class variables into factors using the
as.factor function. We can convert multiple variables into
factors by combining as.factor with the mutate
function from the dplyr package as well as the
across function on a concatenated list of our
variables.
Crops <- Crops %>%
dplyr::mutate(across(c("Crop", "ID", "Unique_ID", "State", "Treatment",
"Fruited", "Flowered", "Root.Nodules.Present"), as.factor))
Great, now let’s subset by crop. What crops do we have?
summary(Crops$Crop)
## Banana Bean Eggplant
## 25 50 50
Ok, “Banana”, “Bean”, and “Eggplant”. We can create our dataframes
for each crop by first using the subset function to select
rows where the crop is what we want, within the droplevels
function to drop unused levels from factors in the dataframe, ensuring
that we only have the levels present in each desired dataframe.
Banana <- droplevels(subset(Crops, Crops$Crop == "Banana"))
Cowpea <- droplevels(subset(Crops, Crops$Crop == "Bean"))
Eggplant <- droplevels(subset(Crops, Crops$Crop == "Eggplant"))
Ok, now let’s remove the unnecessary columns from each dataframe. We
can do this using the colSums function along with
is.na to calculate the sum of NA values for each column in
the dataframe. The resulting logical vector is then compared with the
total number of rows (nrow(myData)) to check if any column
has values other than NA. Columns that have at least one non-NA value
are retained in the modified dataframe, while columns with only NA
values are dropped.
Banana <- Banana[, colSums(is.na(Banana)) != nrow(Banana)]
Cowpea <- Cowpea[, colSums(is.na(Cowpea)) != nrow(Cowpea)]
Eggplant <- Eggplant[, colSums(is.na(Eggplant)) != nrow(Eggplant)]
Some plants did not live through to harvest, so let’s subset those out too.
Banana_H <- droplevels(subset(Banana, Banana$State == "Harvested"))
Cowpea_H <- droplevels(subset(Cowpea, Cowpea$State == "Harvested"))
Eggplant_H <- droplevels(subset(Eggplant, Eggplant$State == "Harvested"))
100 - (nrow(Banana) - nrow(Banana_H)) / nrow(Banana) * 100
## [1] 76
100 - (nrow(Cowpea) - nrow(Cowpea_H)) / nrow(Cowpea) * 100
## [1] 64
100 - (nrow(Eggplant) - nrow(Eggplant_H)) / nrow(Eggplant) * 100
## [1] 86
Let’s do some basic data exploration.
First, we’ll use the head function to get a view of what
the data looks like and verify that we have included the variables of
interest.
head(Banana_H)
Second, we’ll visualize the data distributions of our variables of
interest. For this we will create a histogram and kernel density
estimate, which is basically a smoothed out histogram using the
geom_histogram and geom_density arguments of
ggplot. We will also use geom_vline to create
a vertical line where the mean of our species richness is.
ggplot(Banana_H, aes(x=Stem_Length_cm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Stem_Length_cm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Stem Length (cm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Banana_H, aes(x=Leaf_Vein_mm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Leaf_Vein_mm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Leaf Vein Length (mm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Banana_H, aes(x=Leaf_Count)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Leaf_Count, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Leaf Count") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Banana_H, aes(x=Leaf_Width_mm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Leaf_Width_mm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Leaf Width (mm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Banana_H, aes(x=Root_Length_mm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Root_Length_mm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Root Length (mm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Banana_H, aes(x=Fresh_Mass_g)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Fresh_Mass_g, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Fresh Mass (g)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Banana_H, aes(x=Stem_Diameter_mm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Stem_Diameter_mm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Stem Diameter (mm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Banana_H, aes(x=Root_count)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Root_count, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Root Count") +
ylab("Density") +
theme_bw(base_size = 15)
First, we’ll use the head function to get a view of what
the data looks like and verify that we have included the variables of
interest.
head(Cowpea_H)
Second, we’ll visualize the data distributions of our variables of
interest. For this we will create a histogram and kernel density
estimate, which is basically a smoothed out histogram using the
geom_histogram and geom_density arguments of
ggplot. We will also use geom_vline to create
a vertical line where the mean of our species richness is.
ggplot(Cowpea_H, aes(x=Stem_Length_cm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Stem_Length_cm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Stem Length (cm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Cowpea_H, aes(x=Leaf_Vein_mm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Leaf_Vein_mm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Leaf Vein Length (mm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Cowpea_H, aes(x=Leaf_Count)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Leaf_Count, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Leaf Count") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Cowpea_H, aes(x=Leaf_Width_mm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Leaf_Width_mm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Leaf Width (mm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Cowpea_H, aes(x=Root_Length_mm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Root_Length_mm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Root Length (mm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Cowpea_H, aes(x=Node_Count)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Node_Count, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Node Count") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Cowpea_H, aes(x=Fresh_Mass_g)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Fresh_Mass_g, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Fresh Mass (g)") +
ylab("Density") +
theme_bw(base_size = 15)
First, we’ll use the head function to get a view of what
the data looks like and verify that we have included the variables of
interest.
head(Eggplant_H)
Second, we’ll visualize the data distributions of our variables of
interest. For this we will create a histogram and kernel density
estimate, which is basically a smoothed out histogram using the
geom_histogram and geom_density arguments of
ggplot. We will also use geom_vline to create
a vertical line where the mean of our species richness is.
ggplot(Eggplant_H, aes(x=Stem_Length_cm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Stem_Length_cm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Stem Length (cm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Eggplant_H, aes(x=Leaf_Vein_mm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Leaf_Vein_mm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Leaf Vein Length (mm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Eggplant_H, aes(x=Leaf_Count)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Leaf_Count, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Leaf Count") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Eggplant_H, aes(x=Leaf_Width_mm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Leaf_Width_mm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Leaf Width (mm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Eggplant_H, aes(x=Root_Length_mm)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Root_Length_mm, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Root Length (mm)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Eggplant_H, aes(x=Node_Count)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Node_Count, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Node Count") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Eggplant_H, aes(x=Fresh_Mass_g)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Fresh_Mass_g, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Fresh Mass (g)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Eggplant_H, aes(x=Dry_Mass_g)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Dry_Mass_g, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Dry Mass (g)") +
ylab("Density") +
theme_bw(base_size = 15)
ggplot(Eggplant_H, aes(x=Dry_Root_Mass_g)) +
geom_histogram(aes(y=..density..), colour="black", fill="cornsilk") +
geom_density(alpha=.2, fill="#FF6666") + # easier to see distribution
geom_vline(aes(xintercept=mean(Dry_Root_Mass_g, na.rm=TRUE)),color="cadetblue4",
linetype="dashed", size=1) + # This adds a blue line where the mean is.
xlab("Dry Root Mass (g)") +
ylab("Density") +
theme_bw(base_size = 15)
Let’s get means and standard errors for our variables of interest by
Treatment. We’ll set the number of digits we want to see to five, using
the options function.
options(digits = 5)
To obtain our descriptive statistics, we’ll use the
summarySE function and we’ll use the square brackets to
specify the columns of interest. We’ll wrap that within a
kbl function which will produce a neat,
scientifically-styled table.
kbl(summarySE(Banana_H, measurevar="Stem_Length_cm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Stem_Length_cm | se |
|---|---|---|---|
| Dilution | 5 | 92.158 | 18.3695 |
| Extract | 4 | 129.238 | 5.0680 |
| Optimar | 5 | 56.600 | 2.3152 |
| Water | 5 | 106.800 | 3.7509 |
kbl(summarySE(Banana_H, measurevar="Leaf_Vein_mm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Leaf_Vein_mm | se |
|---|---|---|---|
| Dilution | 5 | 138.84 | 2.4780 |
| Extract | 4 | 146.30 | 3.6790 |
| Optimar | 5 | 117.33 | 2.1369 |
| Water | 5 | 140.99 | 2.7203 |
kbl(summarySE(Banana_H, measurevar= "Leaf_Count", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Leaf_Count | se |
|---|---|---|---|
| Dilution | 5 | 6.20 | 1.15758 |
| Extract | 4 | 6.25 | 1.31498 |
| Optimar | 5 | 7.20 | 0.37417 |
| Water | 5 | 8.60 | 0.92736 |
kbl(summarySE(Banana_H, measurevar="Leaf_Width_mm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Leaf_Width_mm | se |
|---|---|---|---|
| Dilution | 5 | 47.284 | 1.04788 |
| Extract | 4 | 45.773 | 0.59351 |
| Optimar | 5 | 41.802 | 0.56340 |
| Water | 5 | 47.958 | 3.52946 |
kbl(summarySE(Banana_H, measurevar="Root_Length_mm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Root_Length_mm | se |
|---|---|---|---|
| Dilution | 5 | 153.32 | 3.1206 |
| Extract | 4 | 144.55 | 18.7103 |
| Optimar | 5 | 123.06 | 9.5056 |
| Water | 5 | 129.14 | 10.0416 |
kbl(summarySE(Banana_H, measurevar= "Fresh_Mass_g", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Fresh_Mass_g | se |
|---|---|---|---|
| Dilution | 5 | 28.380 | 3.05195 |
| Extract | 4 | 24.775 | 2.80338 |
| Optimar | 5 | 25.900 | 1.75812 |
| Water | 5 | 26.780 | 0.78892 |
kbl(summarySE(Banana_H, measurevar= "Stem_Diameter_mm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Stem_Diameter_mm | se |
|---|---|---|---|
| Dilution | 5 | 11.332 | 0.44225 |
| Extract | 4 | 10.450 | 0.34135 |
| Optimar | 5 | 10.600 | 0.24495 |
| Water | 5 | 10.180 | 0.38523 |
kbl(summarySE(Banana_H, measurevar= "Root_count", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Root_count | se |
|---|---|---|---|
| Dilution | 5 | 12.2 | 0.96954 |
| Extract | 4 | 16.5 | 1.19024 |
| Optimar | 5 | 13.0 | 1.30384 |
| Water | 5 | 13.8 | 0.66332 |
kbl(summarySE(Cowpea_H, measurevar="Stem_Length_cm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Stem_Length_cm | se |
|---|---|---|---|
| Dilution | 7 | 10.6286 | 1.23842 |
| Extract | 7 | 12.2429 | 1.25335 |
| Optimar | 6 | 8.2000 | 0.46404 |
| Triple15 | 6 | 8.8333 | 0.39805 |
| Water | 6 | 9.4667 | 0.54691 |
kbl(summarySE(Cowpea_H, measurevar="Leaf_Vein_mm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Leaf_Vein_mm | se |
|---|---|---|---|
| Dilution | 7 | 63.836 | 2.8737 |
| Extract | 6 | 65.083 | 6.6275 |
| Optimar | 5 | 50.200 | 3.0191 |
| Triple15 | 5 | 56.400 | 3.1757 |
| Water | 5 | 50.160 | 4.7629 |
kbl(summarySE(Cowpea_H, measurevar= "Leaf_Count", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Leaf_Count | se |
|---|---|---|---|
| Dilution | 7 | 24.429 | 2.4384 |
| Extract | 7 | 15.000 | 3.8421 |
| Optimar | 6 | 12.333 | 3.5559 |
| Triple15 | 6 | 15.167 | 4.8677 |
| Water | 6 | 16.000 | 3.7058 |
kbl(summarySE(Cowpea_H, measurevar="Leaf_Width_mm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Leaf_Width_mm | se |
|---|---|---|---|
| Dilution | 7 | 35.071 | 2.4114 |
| Extract | 6 | 36.417 | 2.8149 |
| Optimar | 5 | 27.100 | 2.5169 |
| Triple15 | 5 | 33.100 | 3.1757 |
| Water | 5 | 29.810 | 1.8251 |
kbl(summarySE(Cowpea_H, measurevar="Root_Length_mm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Root_Length_mm | se |
|---|---|---|---|
| Dilution | 7 | 125.143 | 7.1161 |
| Extract | 7 | 108.000 | 7.9372 |
| Optimar | 6 | 91.333 | 9.7080 |
| Triple15 | 6 | 122.833 | 9.6382 |
| Water | 6 | 109.700 | 5.6483 |
kbl(summarySE(Cowpea_H, measurevar= "Node_Count", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Node_Count | se |
|---|---|---|---|
| Dilution | 7 | 6.8571 | 0.79966 |
| Extract | 6 | 5.0000 | 0.68313 |
| Optimar | 5 | 4.6000 | 0.60000 |
| Triple15 | 5 | 5.2000 | 1.06771 |
| Water | 5 | 4.0000 | 0.31623 |
kbl(summarySE(Cowpea_H, measurevar= "Fresh_Mass_g", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Fresh_Mass_g | se |
|---|---|---|---|
| Dilution | 7 | 10.7286 | 0.92291 |
| Extract | 7 | 8.3286 | 1.45499 |
| Optimar | 6 | 6.4333 | 1.15835 |
| Triple15 | 6 | 8.6500 | 1.53661 |
| Water | 6 | 6.7500 | 1.11198 |
kbl(summarySE(Eggplant_H, measurevar="Stem_Length_cm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Stem_Length_cm | se |
|---|---|---|---|
| Dilution | 10 | 24.950 | 0.96451 |
| Extract | 10 | 23.120 | 0.91891 |
| Optimar | 9 | 20.167 | 1.04748 |
| Triple15 | 7 | 23.286 | 1.11193 |
| Water | 7 | 21.429 | 1.10426 |
kbl(summarySE(Eggplant_H, measurevar="Leaf_Vein_mm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Leaf_Vein_mm | se |
|---|---|---|---|
| Dilution | 10 | 90.802 | 3.0045 |
| Extract | 10 | 82.225 | 2.3346 |
| Optimar | 9 | 76.087 | 3.0106 |
| Triple15 | 7 | 82.736 | 2.3401 |
| Water | 7 | 73.411 | 3.6544 |
kbl(summarySE(Eggplant_H, measurevar= "Leaf_Count", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Leaf_Count | se |
|---|---|---|---|
| Dilution | 10 | 6.1000 | 0.37859 |
| Extract | 10 | 5.4000 | 0.42687 |
| Optimar | 9 | 5.4444 | 0.60349 |
| Triple15 | 7 | 4.0000 | 0.00000 |
| Water | 7 | 6.5714 | 0.71903 |
kbl(summarySE(Eggplant_H, measurevar="Leaf_Width_mm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Leaf_Width_mm | se |
|---|---|---|---|
| Dilution | 10 | 64.656 | 2.0988 |
| Extract | 10 | 57.678 | 1.2866 |
| Optimar | 9 | 53.667 | 1.9113 |
| Triple15 | 7 | 57.931 | 1.3547 |
| Water | 7 | 53.046 | 3.0376 |
kbl(summarySE(Eggplant_H, measurevar="Root_Length_mm", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Root_Length_mm | se |
|---|---|---|---|
| Dilution | 10 | 103.27 | 8.7975 |
| Extract | 10 | 139.95 | 4.0431 |
| Optimar | 9 | 115.67 | 6.5021 |
| Triple15 | 7 | 113.00 | 10.9957 |
| Water | 7 | 107.86 | 13.3567 |
kbl(summarySE(Eggplant_H, measurevar= "Node_Count", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Node_Count | se |
|---|---|---|---|
| Dilution | 10 | 6.0000 | 0.25820 |
| Extract | 10 | 5.7000 | 0.36667 |
| Optimar | 9 | 5.1111 | 0.45474 |
| Triple15 | 7 | 3.7143 | 0.28571 |
| Water | 7 | 5.7143 | 0.77810 |
kbl(summarySE(Eggplant_H, measurevar= "Fresh_Mass_g", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Fresh_Mass_g | se |
|---|---|---|---|
| Dilution | 10 | 8.8800 | 0.70329 |
| Extract | 10 | 6.8900 | 0.42543 |
| Optimar | 9 | 5.5333 | 0.44628 |
| Triple15 | 7 | 5.9857 | 0.33125 |
| Water | 7 | 6.2000 | 0.86904 |
kbl(summarySE(Eggplant_H, measurevar= "Dry_Mass_g", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Dry_Mass_g | se |
|---|---|---|---|
| Dilution | 10 | 1140.29 | 96.509 |
| Extract | 10 | 972.67 | 51.361 |
| Optimar | 9 | 770.99 | 84.286 |
| Triple15 | 7 | 980.83 | 102.852 |
| Water | 7 | 825.83 | 115.212 |
kbl(summarySE(Eggplant_H, measurevar= "Dry_Root_Mass_g", groupvars=c("Treatment"),
na.rm = TRUE)[,-c(4,6,8)], format = "html",
table.attr = "style='width:40%;'") %>% kable_classic()
| Treatment | N | Dry_Root_Mass_g | se |
|---|---|---|---|
| Dilution | 10 | 281.33 | 41.542 |
| Extract | 10 | 281.23 | 33.070 |
| Optimar | 9 | 219.62 | 33.246 |
| Triple15 | 7 | 360.39 | 73.616 |
| Water | 7 | 238.37 | 50.151 |
tgc <- summarySE(Banana_H, measurevar="Stem_Length_cm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Stem_Length_cm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Stem_Length_cm - se, ymax = Stem_Length_cm + se), width = 0.1) +
ylab("Stem Length (cm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "lightyellow"))
tgc <- summarySE(Banana_H, measurevar="Leaf_Vein_mm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Leaf_Vein_mm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Leaf_Vein_mm - se, ymax = Leaf_Vein_mm + se), width = 0.1) +
ylab("Leaf Vein Length (mm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "lightyellow"))
tgc <- summarySE(Banana_H, measurevar="Leaf_Count", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Leaf_Count, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Leaf_Count - se, ymax = Leaf_Count + se), width = 0.1) +
ylab("Leaf Count") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "lightyellow"))
tgc <- summarySE(Banana_H, measurevar="Leaf_Width_mm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Leaf_Width_mm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Leaf_Width_mm - se, ymax = Leaf_Width_mm + se), width = 0.1) +
ylab("Leaf Width (mm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "lightyellow"))
tgc <- summarySE(Banana_H, measurevar="Root_Length_mm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Root_Length_mm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Root_Length_mm - se, ymax = Root_Length_mm + se), width = 0.1) +
ylab("Root Length (mm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "lightyellow"))
tgc <- summarySE(Banana_H, measurevar="Fresh_Mass_g", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Fresh_Mass_g, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Fresh_Mass_g - se, ymax = Fresh_Mass_g + se), width = 0.1) +
ylab("Fresh Mass (g)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "lightyellow"))
tgc <- summarySE(Banana_H, measurevar="Stem_Diameter_mm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Stem_Diameter_mm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Stem_Diameter_mm - se, ymax = Stem_Diameter_mm + se), width = 0.1) +
ylab("Stem Diameter (mm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "lightyellow"))
tgc <- summarySE(Banana_H, measurevar="Root_count", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Root_count, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Root_count - se, ymax = Root_count + se), width = 0.1) +
ylab("Root Count") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "lightyellow"))
tgc <- summarySE(Cowpea_H, measurevar="Stem_Length_cm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Stem_Length_cm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Stem_Length_cm - se, ymax = Stem_Length_cm + se), width = 0.1) +
ylab("Stem Length (cm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#ecdacd"))
tgc <- summarySE(Cowpea_H, measurevar="Leaf_Vein_mm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Leaf_Vein_mm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Leaf_Vein_mm - se, ymax = Leaf_Vein_mm + se), width = 0.1) +
ylab("Leaf Vein Length (mm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#ecdacd"))
tgc <- summarySE(Cowpea_H, measurevar="Leaf_Count", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Leaf_Count, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Leaf_Count - se, ymax = Leaf_Count + se), width = 0.1) +
ylab("Leaf Count") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#ecdacd"))
tgc <- summarySE(Cowpea_H, measurevar="Leaf_Width_mm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Leaf_Width_mm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Leaf_Width_mm - se, ymax = Leaf_Width_mm + se), width = 0.1) +
ylab("Leaf Width (mm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#ecdacd"))
tgc <- summarySE(Cowpea_H, measurevar="Root_Length_mm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Root_Length_mm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Root_Length_mm - se, ymax = Root_Length_mm + se), width = 0.1) +
ylab("Root Length (mm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#ecdacd"))
tgc <- summarySE(Cowpea_H, measurevar="Node_Count", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Node_Count, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Node_Count - se, ymax = Node_Count + se), width = 0.1) +
ylab("Node Count") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#ecdacd"))
tgc <- summarySE(Cowpea_H, measurevar="Fresh_Mass_g", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Fresh_Mass_g, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Fresh_Mass_g - se, ymax = Fresh_Mass_g + se), width = 0.1) +
ylab("Fresh Mass (g)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#ecdacd"))
tgc <- summarySE(Eggplant_H, measurevar="Stem_Length_cm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Stem_Length_cm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Stem_Length_cm - se, ymax = Stem_Length_cm + se), width = 0.1) +
ylab("Stem Length (cm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#f1e2fb"))
tgc <- summarySE(Eggplant_H, measurevar="Leaf_Vein_mm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Leaf_Vein_mm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Leaf_Vein_mm - se, ymax = Leaf_Vein_mm + se), width = 0.1) +
ylab("Leaf Vein Length (mm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#f1e2fb"))
tgc <- summarySE(Eggplant_H, measurevar="Leaf_Count", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Leaf_Count, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Leaf_Count - se, ymax = Leaf_Count + se), width = 0.1) +
ylab("Leaf Count") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#f1e2fb"))
tgc <- summarySE(Eggplant_H, measurevar="Leaf_Width_mm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Leaf_Width_mm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Leaf_Width_mm - se, ymax = Leaf_Width_mm + se), width = 0.1) +
ylab("Leaf Width (mm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#f1e2fb"))
tgc <- summarySE(Eggplant_H, measurevar="Root_Length_mm", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Root_Length_mm, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Root_Length_mm - se, ymax = Root_Length_mm + se), width = 0.1) +
ylab("Root Length (mm)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#f1e2fb"))
tgc <- summarySE(Eggplant_H, measurevar="Node_Count", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Node_Count, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Node_Count - se, ymax = Node_Count + se), width = 0.1) +
ylab("Node Count") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#f1e2fb"))
tgc <- summarySE(Eggplant_H, measurevar="Fresh_Mass_g", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Fresh_Mass_g, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Fresh_Mass_g - se, ymax = Fresh_Mass_g + se), width = 0.1) +
ylab("Fresh Mass (g)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#f1e2fb"))
tgc <- summarySE(Eggplant_H, measurevar="Dry_Mass_g", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Dry_Mass_g, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Dry_Mass_g - se, ymax = Dry_Mass_g + se), width = 0.1) +
ylab("Dry Mass (g)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#f1e2fb"))
tgc <- summarySE(Eggplant_H, measurevar="Dry_Root_Mass_g", groupvars=c("Treatment"), na.rm = TRUE)
ggplot(tgc, aes(x = Treatment, y = Dry_Root_Mass_g, fill = Treatment)) +
geom_bar(stat = "identity", color = "black", alpha = 0.5) +
geom_errorbar(aes(ymin = Dry_Root_Mass_g - se, ymax = Dry_Root_Mass_g + se), width = 0.1) +
ylab("Dry Root Mass (g)") +
scale_fill_manual(values = c("#ADD8C6", "#E6E6FA", "#FFB6C1", "#eaa372", "#ADD8E6")) +
theme_classic(base_size=15) +
theme(panel.background = element_rect(fill = "#f1e2fb"))
Because of the sheer number of tests we need to do, it is not
reasonable to evaluate each model’s assumptions and select a
transformation or GLM suited for each one. Instead, given that most data
do not follow a normal data distribution, I suggest we continue using
non-parametric statistics only. For this we have the Kruskal-Wallis
test, available through the kruskal.test function, and the
conover post-hoc test, available through the conover.test
function.
options(digits = 7)
kruskal.test(data = Banana_H, Stem_Length_cm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Stem_Length_cm by Treatment
## Kruskal-Wallis chi-squared = 9.5436, df = 3, p-value = 0.02287
conover.test(Banana_H$Stem_Length_cm, Banana_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 9.5436, df = 3, p-value = 0.02
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar
## ---------+---------------------------------
## Extract | -2.064870
## | 0.0850
## |
## Optimar | 2.096530 4.041498
## | 0.1068 0.0064*
## |
## Water | -0.486694 1.606010 -2.583225
## | 0.6335 0.1549 0.0623
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a statistically significant difference in stem length in banana plants (KW X2 = 9.544, p = 0.023). According to the Conover Post-Hoc Test, this difference is between Optimar and Extract (t = 4.041, p = 0.006). There is also a marginally significant difference between Extract and Dilution (t = -2.065, p = 0.085) and between Water and Optimar (t = -2.583, p = 0.062).
kruskal.test(data = Banana_H, Leaf_Vein_mm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Leaf_Vein_mm by Treatment
## Kruskal-Wallis chi-squared = 12.482, df = 3, p-value = 0.005903
conover.test(Banana_H$Leaf_Vein_mm, Banana_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 12.4816, df = 3, p-value = 0.01
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar
## ---------+---------------------------------
## Extract | -2.249251
## | 0.0599
## |
## Optimar | 3.520632 5.568535
## | 0.0062* 0.0003*
## |
## Water | -0.555889 1.725154 -4.076521
## | 0.5865 0.1260 0.0030*
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a statistically significant difference in leaf vein length in banana plants (KW X2 = 12.482, p = 0.006). According to the Conover Post-Hoc Test, this difference is between Optimar and Extract (t = 5.569, p = 0.0003) as well as between Optimar and Dilution (t = 3.521, p = 0.006) and Optimar and Water (t = -4.077, p = 0.003). There is also a marginally significant difference between Extract and Dilution (t = -2.249, p = 0.0599).
kruskal.test(data = Banana_H, Leaf_Count ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Leaf_Count by Treatment
## Kruskal-Wallis chi-squared = 2.0967, df = 3, p-value = 0.5526
INTERPRETATION: We do NOT have a statistically significant difference in leaf vein length in banana plants (KW X2 = 2.096, p = 0.553). There is no need for a Conover Post-Hoc Test.
kruskal.test(data = Banana_H, Leaf_Width_mm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Leaf_Width_mm by Treatment
## Kruskal-Wallis chi-squared = 11.153, df = 3, p-value = 0.01093
conover.test(Banana_H$Leaf_Width_mm, Banana_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 11.1527, df = 3, p-value = 0.01
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar
## ---------+---------------------------------
## Extract | 0.922207
## | 0.4452
## |
## Optimar | 4.620189 3.433749
## | 0.0020* 0.0074*
## |
## Water | 1.082206 0.098107 -3.537983
## | 0.4444 0.9231 0.0089*
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a statistically significant difference in leaf width (mm) in banana plants (KW X2 = 11.153, p = 0.011). According to the Conover Post-Hoc Test, this difference is between Optimar and Extract (t = 3.434, p = 0.007) as well as between Optimar and Dilution (t = 4.620, p = 0.002) and Optimar and Water (t = -3.538, p = 0.009).
kruskal.test(data = Banana_H, Root_Length_mm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Root_Length_mm by Treatment
## Kruskal-Wallis chi-squared = 3.8589, df = 3, p-value = 0.2771
conover.test(Banana_H$Leaf_Width_mm, Banana_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 11.1527, df = 3, p-value = 0.01
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar
## ---------+---------------------------------
## Extract | 0.922207
## | 0.4452
## |
## Optimar | 4.620189 3.433749
## | 0.0020* 0.0074*
## |
## Water | 1.082206 0.098107 -3.537983
## | 0.4444 0.9231 0.0089*
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We do NOT have a statistically significant difference in root length in banana plants (KW X2 = 3.8589, p = 0.277). There is no need for a Conover Post-Hoc Test.
kruskal.test(data = Banana_H, Fresh_Mass_g ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Fresh_Mass_g by Treatment
## Kruskal-Wallis chi-squared = 1.7751, df = 3, p-value = 0.6204
conover.test(Banana_H$Leaf_Width_mm, Banana_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 11.1527, df = 3, p-value = 0.01
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar
## ---------+---------------------------------
## Extract | 0.922207
## | 0.4452
## |
## Optimar | 4.620189 3.433749
## | 0.0020* 0.0074*
## |
## Water | 1.082206 0.098107 -3.537983
## | 0.4444 0.9231 0.0089*
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We do NOT have a statistically significant difference in fresh mass (g) in banana plants (KW X2 = 1.775, p = 0.620). There is no need for a Conover Post-Hoc Test.
kruskal.test(data = Banana_H, Stem_Diameter_mm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Stem_Diameter_mm by Treatment
## Kruskal-Wallis chi-squared = 3.4792, df = 3, p-value = 0.3235
conover.test(Banana_H$Leaf_Width_mm, Banana_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 11.1527, df = 3, p-value = 0.01
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar
## ---------+---------------------------------
## Extract | 0.922207
## | 0.4452
## |
## Optimar | 4.620189 3.433749
## | 0.0020* 0.0074*
## |
## Water | 1.082206 0.098107 -3.537983
## | 0.4444 0.9231 0.0089*
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We do NOT have a statistically significant difference in stem diameter (mm) in banana plants (KW X2 = 3.4792, p = 0.3235). There is no need for a Conover Post-Hoc Test.
kruskal.test(data = Banana_H, Root_count ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Root_count by Treatment
## Kruskal-Wallis chi-squared = 7.7933, df = 3, p-value = 0.05048
conover.test(Banana_H$Root_count, Banana_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 7.7933, df = 3, p-value = 0.05
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar
## ---------+---------------------------------
## Extract | -3.318961
## | 0.0280*
## |
## Optimar | -1.037923 2.340398
## | 0.3789 0.1005
## |
## Water | -1.141715 2.242541 -0.103792
## | 0.4072 0.0809 0.9187
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a MARGINALLY statistically significant difference in leaf width (mm) in banana plants (KW X2 = 7.7933, p = 0.050). According to the Conover Post-Hoc Test, there is a statistically significant difference between Extract and Dilution (t = -3.319, p = 0.028). There is also a marginally significant difference between Water and Extract (t = 2.243, p = 0.081).
options(digits = 7)
kruskal.test(data = Cowpea_H, Stem_Length_cm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Stem_Length_cm by Treatment
## Kruskal-Wallis chi-squared = 7.0764, df = 4, p-value = 0.1319
INTERPRETATION: We do NOT have a statistically significant difference in stem length in banana plants (KW X2 = 7.076, p = 0.132). There is no need for a Conover Post-Hoc Test.
options(digits = 7)
kruskal.test(data = Cowpea_H, Leaf_Vein_mm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Leaf_Vein_mm by Treatment
## Kruskal-Wallis chi-squared = 8.8307, df = 4, p-value = 0.06547
conover.test(Cowpea_H$Leaf_Vein_mm, Cowpea_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 8.8307, df = 4, p-value = 0.07
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | 0.322380
## | 0.7501
## |
## Optimar | 2.793536 2.405117
## | 0.1032 0.1230
## |
## Triple15 | 1.390084 1.047998 -1.299343
## | 0.3556 0.4365 0.3445
## |
## Water | 2.185373 1.817032 -0.563048 0.736294
## | 0.1310 0.2057 0.6432 0.5862
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We do have a MARGINALLY statistically significant difference in stem length in Cowpea plants (KW X2 = 8.831, p = 0.065), but according to the Conover Post-Hoc Test, there are not pairwise differences with a p-value above 0.1.
options(digits = 7)
kruskal.test(data = Cowpea_H, Leaf_Count ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Leaf_Count by Treatment
## Kruskal-Wallis chi-squared = 5.1625, df = 4, p-value = 0.271
INTERPRETATION: We do NOT have a statistically significant difference in leaf count in Cowpea plants (KW X2 = 5.1625, p = 0.271). There is no need for a Conover Post-Hoc Test.
options(digits = 7)
kruskal.test(data = Cowpea_H, Leaf_Width_mm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Leaf_Width_mm by Treatment
## Kruskal-Wallis chi-squared = 6.3737, df = 4, p-value = 0.1729
INTERPRETATION: We do NOT have a statistically significant difference in leaf width in Cowpea plants (KW X2 = 6.374, p = 0.173). There is no need for a Conover Post-Hoc Test.
options(digits = 7)
kruskal.test(data = Cowpea_H, Root_Length_mm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Root_Length_mm by Treatment
## Kruskal-Wallis chi-squared = 8.5127, df = 4, p-value = 0.0745
conover.test(Cowpea_H$Root_Length_mm, Cowpea_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 8.5127, df = 4, p-value = 0.07
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | 1.593149
## | 0.4092
## |
## Optimar | 2.913735 1.383086
## | 0.0709 0.2966
## |
## Triple15 | 0.357651 -1.172997 -2.463103
## | 0.8038 0.3586 0.1022
## |
## Water | 1.425604 -0.105044 -1.433998 1.029105
## | 0.3309 0.9171 0.4076 0.3907
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a MARGINALLY statistically significant difference in root length in Cowpea plants (KW X2 = 8.513, p = 0.0745). According to the Conover Post-Hoc Test, there is a single, marginally significant difference between Optimar and Dilution (t = 2.914, p = 0.071).
options(digits = 7)
kruskal.test(data = Cowpea_H, Node_Count ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Node_Count by Treatment
## Kruskal-Wallis chi-squared = 7.7206, df = 4, p-value = 0.1024
conover.test(Cowpea_H$Node_Count, Cowpea_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 7.7206, df = 4, p-value = 0.1
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | 1.412453
## | 0.3424
## |
## Optimar | 2.019656 0.655248
## | 0.2761 0.6485
## |
## Triple15 | 1.419039 0.074460 -0.556063
## | 0.4232 0.9413 0.6484
## |
## Water | 2.897480 1.504094 0.812707 1.368770
## | 0.0812 0.4872 0.6067 0.3072
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We do NOT have a statistically significant difference in node count in Cowpea plants (KW X2 = 7.721, p = 0.102). According to the Conover Post-Hoc Test, there is a single, MARGINALLY significant difference between Water and Dilution (t = 2.897, p = 0.081).
options(digits = 7)
kruskal.test(data = Cowpea_H, Fresh_Mass_g ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Fresh_Mass_g by Treatment
## Kruskal-Wallis chi-squared = 8.3732, df = 4, p-value = 0.07882
conover.test(Cowpea_H$Fresh_Mass_g, Cowpea_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 8.3732, df = 4, p-value = 0.08
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | 1.120694
## | 0.3890
## |
## Optimar | 2.619541 1.542812
## | 0.1427 0.2690
## |
## Triple15 | 0.822501 -0.254227 -1.731671
## | 0.5225 0.8903 0.3158
## |
## Water | 2.479965 1.403236 -0.134498 1.597172
## | 0.0984 0.2866 0.8940 0.3047
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a MARGINALLY statistically significant difference in fresh mass in Cowpea plants (KW X2 = 8.3732, p = 0.079). According to the Conover Post-Hoc Test, there is a single, MARGINALLY significant difference between Water and Dilution (t = 2.479, p = 0.098).
options(digits = 7)
kruskal.test(data = Eggplant_H, Stem_Length_cm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Stem_Length_cm by Treatment
## Kruskal-Wallis chi-squared = 9.7729, df = 4, p-value = 0.04443
conover.test(Eggplant_H$Stem_Length_cm, Eggplant_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 9.7729, df = 4, p-value = 0.04
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | 1.132774
## | 0.3777
## |
## Optimar | 3.085706 1.983144
## | 0.0378* 0.1820
## |
## Triple15 | 0.854763 -0.173212 -1.977471
## | 0.4975 0.8634 0.1382
## |
## Water | 2.235439 1.207463 -0.627335 1.272920
## | 0.1567 0.3912 0.5935 0.4216
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a statistically significant difference in stem length in eggplant plants (KW X2 = 9.773, p = 0.044). According to the Conover Post-Hoc Test, there is a statistically significant difference between Optimar and Dilution (t = 3.086, p = 0.038).
options(digits = 7)
kruskal.test(data = Eggplant_H, Leaf_Vein_mm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Leaf_Vein_mm by Treatment
## Kruskal-Wallis chi-squared = 14.561, df = 4, p-value = 0.005704
conover.test(Eggplant_H$Leaf_Vein_mm, Eggplant_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 14.5611, df = 4, p-value = 0.01
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | 1.991113
## | 0.1342
## |
## Optimar | 3.725281 1.787273
## | 0.0032* 0.1170
## |
## Triple15 | 1.618064 -0.188842 -1.814174
## | 0.1424 0.8512 0.1293
## |
## Water | 3.778200 1.971294 0.298180 1.991547
## | 0.0054* 0.1120 0.8524 0.1788
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a statistically significant difference in leaf vein length (mm) in eggplant plants (KW X2 = 14.561, p = 0.006). According to the Conover Post-Hoc Test, there is a statistically significant difference between Optimar and Dilution (t = 3.725, p = 0.003) and between Water and Dilution (t = 3.778, p = 0.005).
options(digits = 7)
kruskal.test(data = Eggplant_H, Leaf_Count ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Leaf_Count by Treatment
## Kruskal-Wallis chi-squared = 13.501, df = 4, p-value = 0.009069
conover.test(Eggplant_H$Leaf_Count, Eggplant_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 13.5013, df = 4, p-value = 0.01
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | 1.342976
## | 0.2341
## |
## Optimar | 1.377472 0.070314
## | 0.2520 0.9443
## |
## Triple15 | 3.723902 2.505170 2.385649
## | 0.0063* 0.0555 0.0553
## |
## Water | -0.283265 -1.501997 -1.532881 -3.694426
## | 0.8650 0.2356 0.2672 0.0035*
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a statistically significant difference in leaf count in eggplant plants (KW X2 = 13.501, p = 0.009). According to the Conover Post-Hoc Test, there is a statistically significant difference between Triple15 and Dilution (t = 3.724, p = 0.006) and between Water and Triple15 (t = 2.386, p = 0.004). There are also MARGINALLY significant differences between Triple15 and Optimar (t = 2.386, p = 0.055) and Triple15 and Extract (t = 2.505, p = 0.056).
options(digits = 7)
kruskal.test(data = Eggplant_H, Leaf_Width_mm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Leaf_Width_mm by Treatment
## Kruskal-Wallis chi-squared = 15.432, df = 4, p-value = 0.003884
conover.test(Eggplant_H$Leaf_Width_mm, Eggplant_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 15.4323, df = 4, p-value = 0
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | 2.587945
## | 0.0453*
## |
## Optimar | 4.224693 1.705771
## | 0.0014* 0.1924
## |
## Triple15 | 2.242210 -0.106311 -1.659161
## | 0.0772 0.9159 0.1755
## |
## Water | 3.705722 1.357200 -0.228022 1.349291
## | 0.0033* 0.2610 0.9121 0.2315
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a statistically significant difference in leaf width (mm) in eggplant plants (KW X2 = 15.432, p = 0.004). According to the Conover Post-Hoc Test, there is a statistically significant difference between Water and Dilution (t = 3.706, p = 0.003) and between Optimar and Dilution (t = 4.225, p = 0.001) and between Extract and Dilution (t = 2.588, p = 0.045).
options(digits = 7)
kruskal.test(data = Eggplant_H, Root_Length_mm ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Root_Length_mm by Treatment
## Kruskal-Wallis chi-squared = 11.469, df = 4, p-value = 0.02177
conover.test(Eggplant_H$Root_Length_mm, Eggplant_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 11.4694, df = 4, p-value = 0.02
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | -3.509629
## | 0.0117*
## |
## Optimar | -0.756965 2.659056
## | 0.7562 0.0570*
## |
## Triple15 | -0.904826 2.280110 -0.194664
## | 0.7425 0.0707 0.9408
## |
## Water | -0.621262 2.563674 0.082627 0.261432
## | 0.7688 0.0481* 0.9346 0.9940
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a statistically significant difference in root length (mm) in eggplant plants (KW X2 = 11.469, p = 0.022). According to the Conover Post-Hoc Test, there is a statistically significant difference between Dilution and Extract (t = 3.509, p = 0.012) and between Extract and Water (t = 2.564, p = 0.048). There is also a marginally significant difference between Triple15 and Extract (t = 2.280, p = 0.071) and between Optimar and Extract (t = 2.659, p = 0.057).
options(digits = 7)
kruskal.test(data = Eggplant_H, Node_Count ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Node_Count by Treatment
## Kruskal-Wallis chi-squared = 14.408, df = 4, p-value = 0.0061
conover.test(Eggplant_H$Node_Count, Eggplant_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 14.408, df = 4, p-value = 0.01
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | 0.729495
## | 0.5877
## |
## Optimar | 1.838907 1.128868
## | 0.1475 0.3800
## |
## Triple15 | 4.220986 3.558979 2.451033
## | 0.0015* 0.0051* 0.0474*
## |
## Water | 1.300369 0.638363 -0.404979 -2.692675
## | 0.3355 0.5856 0.6878 0.0350*
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a statistically significant difference in node count in eggplant plants (KW X2 = 14.408, p = 0.006). According to the Conover Post-Hoc Test, there is a statistically significant difference between Triple15 and Dilution (t = 4.221, p = 0.002), Triple15 and Extract (t = 3.559, p = 0.005), Triple15 and Optimar (t = 2.451, p = 0.047), and Triple15 and Water (t = -2.693, p = 0.035).
options(digits = 7)
kruskal.test(data = Eggplant_H, Fresh_Mass_g ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Fresh_Mass_g by Treatment
## Kruskal-Wallis chi-squared = 12.782, df = 4, p-value = 0.01239
conover.test(Eggplant_H$Fresh_Mass_g, Eggplant_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 12.7824, df = 4, p-value = 0.01
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | 1.809124
## | 0.1567
## |
## Optimar | 3.730587 1.969715
## | 0.0062* 0.1405
## |
## Triple15 | 2.888221 1.246467 -0.576950
## | 0.0318* 0.3670 0.6304
## |
## Water | 2.532464 0.890710 -0.924838 -0.327991
## | 0.0519 0.4734 0.5156 0.7447
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We have a statistically significant difference in fresh mass (g) in eggplant plants (KW X2 = 12.782, p = 0.012). According to the Conover Post-Hoc Test, there is a statistically significant difference between Triple15 and Dilution (t = 2.888, p = 0.006) and Optimar and Dilution (t = 3.731, p = 0.006). We also have a MARGINALLY significant difference between Water and Dilution (t = 2.532, p = 0.052).
options(digits = 7)
kruskal.test(data = Eggplant_H, Dry_Mass_g ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Dry_Mass_g by Treatment
## Kruskal-Wallis chi-squared = 7.6244, df = 4, p-value = 0.1063
conover.test(Eggplant_H$Dry_Mass_g, Eggplant_H$Treatment, altp=TRUE, method = "bh")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 7.6244, df = 4, p-value = 0.11
##
##
## Comparison of x by group
## (Benjamini-Hochberg)
## Col Mean-|
## Row Mean | Dilution Extract Optimar Triple15
## ---------+--------------------------------------------
## Extract | 1.123396
## | 0.5366
## |
## Optimar | 2.725486 1.632051
## | 0.0965 0.3698
## |
## Triple15 | 1.063157 0.043691 -1.445264
## | 0.4907 0.9654 0.3915
## |
## Water | 1.936985 0.917519 -0.590764 0.805629
## | 0.3010 0.5209 0.6202 0.5318
##
## alpha = 0.05
## Reject Ho if p <= alpha
INTERPRETATION: We do NOT have a statistically significant difference in dry mass (g) in eggplant plants (KW X2 = 7.624, p = 0.106). According to the Conover Post-Hoc Test, there is a MARGINALLY statistically significant difference between Dilution and Optimar (t = 2.725, p = 0.097).
options(digits = 7)
kruskal.test(data = Eggplant_H, Dry_Root_Mass_g ~ Treatment)
##
## Kruskal-Wallis rank sum test
##
## data: Dry_Root_Mass_g by Treatment
## Kruskal-Wallis chi-squared = 3.2641, df = 4, p-value = 0.5146
INTERPRETATION: We do NOT have a statistically significant difference in dry mass (g) in eggplant plants (KW X2 = 3.264, p = 0.515). There is no need for a Conover Post-Hoc Test.
Lets try out the Z transformation (X-Mean/standard deviation).
Z-transformation (also known as standardization) is a statistical
technique used to transform a dataset into a standard normal
distribution with a mean of 0 and a standard deviation of 1. This
transformation is often applied to data to make it more amenable to
certain statistical analyses or to compare data on different scales. We
can easily perform a Z-transformation (standardization) on a dataset
using the scale function. We will apply the scale function
to all the biometric variables by using a for loop that
iterates scale over each column specified in a vector named
columns_to_scale, which holds the name of all the biometric
variables.
Next we use the melt function to create a single column for each of our biometric variables.
Next we drop the Treatment categories that corresponded to dead seedlings.
## quartz_off_screen
## 2
We will use the report function to obtain all the
bibliographical information we need on the R packages used in this
analysis.
## Analyses were conducted using the R Statistical language (version 4.2.2; R Core
## Team, 2022) on macOS Ventura 13.4.1, using the packages conover.test (version
## 1.1.5; Dinno A, 2017), Rmisc (version 1.5.1; Hope RM, 2022), report (version
## 0.5.6; Makowski D et al., 2023), lattice (version 0.20.45; Sarkar D, 2008), png
## (version 0.1.8; Urbanek S, 2022), reshape2 (version 1.4.4; Wickham H, 2007),
## plyr (version 1.8.8; Wickham H, 2011), ggplot2 (version 3.4.1; Wickham H,
## 2016), dplyr (version 1.1.0; Wickham H et al., 2023) and kableExtra (version
## 1.3.4; Zhu H, 2021).
##
## References
## ----------
## - Dinno A (2017). _conover.test: Conover-Iman Test of Multiple Comparisons
## Using Rank Sums_. R package version 1.1.5,
## <https://CRAN.R-project.org/package=conover.test>.
## - Hope RM (2022). _Rmisc: Ryan Miscellaneous_. R package version 1.5.1,
## <https://CRAN.R-project.org/package=Rmisc>.
## - Makowski D, Lüdecke D, Patil I, Thériault R (2023). "Automated Results
## Reporting as a Practical Tool to Improve Reproducibility and Methodological
## Best Practices Adoption." _CRAN_. <https://easystats.github.io/report/>.
## - R Core Team (2022). _R: A Language and Environment for Statistical
## Computing_. R Foundation for Statistical Computing, Vienna, Austria.
## <https://www.R-project.org/>.
## - Sarkar D (2008). _Lattice: Multivariate Data Visualization with R_. Springer,
## New York. ISBN 978-0-387-75968-5, <http://lmdvr.r-forge.r-project.org>.
## - Urbanek S (2022). _png: Read and write PNG images_. R package version 0.1-8,
## <https://CRAN.R-project.org/package=png>.
## - Wickham H (2007). "Reshaping Data with the reshape Package." _Journal of
## Statistical Software_, *21*(12), 1-20. <http://www.jstatsoft.org/v21/i12/>.
## - Wickham H (2011). "The Split-Apply-Combine Strategy for Data Analysis."
## _Journal of Statistical Software_, *40*(1), 1-29.
## <https://www.jstatsoft.org/v40/i01/>.
## - Wickham H (2016). _ggplot2: Elegant Graphics for Data Analysis_.
## Springer-Verlag New York. ISBN 978-3-319-24277-4,
## <https://ggplot2.tidyverse.org>.
## - Wickham H, François R, Henry L, Müller K, Vaughan D (2023). _dplyr: A Grammar
## of Data Manipulation_. R package version 1.1.0,
## <https://CRAN.R-project.org/package=dplyr>.
## - Zhu H (2021). _kableExtra: Construct Complex Table with 'kable' and Pipe
## Syntax_. R package version 1.3.4,
## <https://CRAN.R-project.org/package=kableExtra>.